Field programmable gate arrays (FPGAs), first introduced by XILINX in 1985, are becoming increasingly popular devices for use in electronics systems. For example, communications systems employ FPGAs in large measure because of the re-programmability of FPGAs. In general, the use of FPGAs continues to grow at a rapid rate because they permit relatively short design cycles, reduce costs through logic consolidation, and offer flexibility in their re-programmability.
The re-programmability of FPGAs, while a chief advantage of FPGAs over other solutions, has also created challenges to users of FPGAs, as well as to field engineers and other support personnel. Specifically, to trace the content of a particular FPGA programming bitstream, a user may need to reference identifying characteristics of certain design modules that are not readily available. The reason for the need to ascertain these characteristics arises from the fact that the design modules that are embodied in the programming bitstream have associated therewith characteristics such as logic core identifiers, revision levels, timestamps and assorted other information, and the identification of these characteristics may be necessary in order to troubleshoot problems that may arise from use of a particular design module with a particular FPGA. However, quickly identifying the characteristics may be cumbersome and time consuming depending upon how such information is managed.
In addition to the content of an FPGA programming bitstream, the software tools used to generate the bitstream may also impact operability. For example, when support personnel are presented with a programming bitstream which does not program a FPGA to function as expected, one consideration is the compatibility of the software tool with the particular FPGA. In addition, there may be compatibility issues between different versions of the software tool and revision levels of FPGAs. As with identification of the contents of the programming bitstream, identifying the software tools may be cumbersome or impossible depending upon how such information is managed.
Therefore, a method and system that addresses the aforementioned problems, as well as other related problems, are desirable.